5-7 Vq

使用 quiver 指令可畫出平面上的向量場圖(Quiver Plots),特別適用於表示分布於平面的向量場 (Vector Fields),例如平面上的電場分布,或是流速分布,舉例如下:

Example 1: 05-特殊圖形/quiver01.m[x, y, z] = peaks(20); [u, v] = gradient(z); contour(x, y, z, 10); hold on, quiver(x,y,u,v); hold off axis image

在上例中,gradient 產生梯度向量,contour 進行等高線作圖,而 quiver 則將每一點的梯度向量以小箭號表示。(由基本微積分可知,梯度向量永遠與等高線垂直,可由上圖再次得到驗證。)

Hint
梯度向量也就是「最速下降法」(Steepest Descent)所行走路徑的反方向。

Hint
在本章的範例檔案中,筆者特別準備了一個有趣的互動展示,可以再一次驗證梯度向量永遠和等高線垂直,請輸入「gradientDescentDemo」並在等高線圖形上面點選滑鼠,即可顯示最速下降法的路徑。保證有趣,請試試看!

欲畫出空間中的向量場圖,可用 quiver3 指令,如下:

Example 2: 05-特殊圖形/quiver301.m[x, y] = meshgrid(-2:0.2:2, -1:0.1:1); z = x.*exp(-x.^2-y.^2); [u, v, w] = surfnorm(x, y, z); quiver3(x, y, z, u, v, w); hold on, surf(x, y, z); hold off axis equal %colormap('default') % 顏色改回預設值

其中 surfnorm 可產生垂直於曲面的法向量。


MATLAB程式設計:入門篇